package com.alks.function.mapper.finance.fincons;


import com.alks.function.data.dto.finance.fincons.SettlementDetailsDto;
import com.alks.function.data.dto.finance.fincons.SettlementStatisticsDto;
import com.alks.function.data.dto.finance.fincons.SettlementSummaryDto;
import com.alks.function.data.dto.finance.fincons.SettlementSummaryDto2;
import com.alks.function.data.request.finance.fincons.AnnualPayableRequest;
import com.alks.function.data.request.finance.fincons.SettlementPayableRequest;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface SettlementPayableMapper {

    /*结算应付明细查询*/
    List<SettlementDetailsDto> getSettlementDetails( @Param("request") SettlementPayableRequest request);

    List<SettlementDetailsDto> getSettlementDetails2( @Param("request") SettlementPayableRequest request);

    /*结算应付汇总月份查询*/
    List<SettlementSummaryDto> getSettlementSummary(@Param("companyId") String companyId, @Param("request") SettlementPayableRequest request);

    /*结算应付汇总/月份*/
    List<SettlementSummaryDto> getSettlementSummaryByMonth(@Param("companyId") String companyId, @Param("request") SettlementPayableRequest request);

    /*结算应付汇总/年度查询*/
    List<SettlementSummaryDto> getSettlementPayableSummaryByAnnual(@Param("companyId") String companyId, @Param("request") AnnualPayableRequest request);

    /*查询厂商一年对账统计表*/
    List<SettlementStatisticsDto> getSettlementSummaryByYy(@Param("companyId") String companyId, @Param("financeYymm") String financeYymm);

    List<SettlementStatisticsDto> getSettlementSummaryByYy2(@Param("companyId") String companyId, @Param("financeYymm") String financeYymm);

    int deletePcCostTtlTask();

    int insertPcCostTtlTask(List<SettlementSummaryDto> list);

    /*结算应付汇总月的全查询*/
    List<SettlementSummaryDto> getPcVCostTtl();

    /*先查出PcCostTtlTask和PC_V_COST_TTL不同的数据*/
    List<SettlementSummaryDto2> getNewPcVCostTtlForUpdate();

    /*批量新增*/
    void batchInsertPcCostTtlTask(List<SettlementSummaryDto2> list);

    /*批量修改*/
    void batchUpdatePcCostTtlTask(List<SettlementSummaryDto2> list);
}
